Para el siguiente trabajo, se realizó la muestra de distintos valores optenidos sobre visualizaciones de primates en Costa Rica de modo que estas variables puedan ser medidas y representadas mediante una tabla, un grafico de pastel y un mapa interactivo.
#Inicio de carga de datos
#Carga de librerias a utilizar
library(sf)
library(raster)
library(dplyr)
library(spData)
library(rgdal)
library(leaflet)
library(ggplot2)
library(plotly)
library(DT)
#se geneara la variable primates con separador tabulador
Primates <- read.csv("primates-cr-registros.csv",sep = "\t", dec = ",")
Primates2 <- st_read("https://raw.githubusercontent.com/gf0604-procesamientodatosgeograficos/2021i-datos/main/gbif/primates-cr-registros.csv",
options = c(
"X_POSSIBLE_NAMES=decimalLongitude",
"Y_POSSIBLE_NAMES=decimalLatitude"
),
quiet = TRUE
)
#Se obtiene la variable de cantones
cantones <-
st_read(
"https://raw.githubusercontent.com/gf0604-procesamientodatosgeograficos/2021i-datos/main/ign/delimitacion-territorial-administrativa/cr_cantones_simp_wgs84.geojson",
quiet = TRUE
)
#Se obtiene la variable de provincias
provincias <-
st_read(
"https://raw.githubusercontent.com/gf0604-procesamientodatosgeograficos/2021i-datos/main/ign/delimitacion-territorial-administrativa/cr_provincias_simp_wgs84.geojson",
quiet = TRUE
)
#Se crea una tabla para la representación de las variables
Primates %>%
select(family,
species,
stateProvince,
eventDate
) %>%
DT::datatable(
colnames = c("Familia", "Especie", "Provincia", "Fecha"),
rownames = FALSE,
options = list(
searchHighlight = TRUE,
language = list(url = "//cdn.datatables.net/plug-ins/1.10.11/i18n/Spanish.json"),
pageLength = 5
)
)
Una vez echo la anterior tabla, se procede al inicio de la creación del grafico de pastel de manera que los data.frame que se crearán acontinuación, sirvieron para recolectar y visualizar los datos que se utilizaron tanto en el siguiente grafico como en el mapa que será mostrado mas adelante.
monoarana <-
Primates2 %>%
filter (species == "Ateles geoffroyi")
monocariblanca <-
Primates2 %>%
filter (species == "Cebus capucinus")
monoaullador <-
Primates2 %>%
filter (species == "Alouatta palliata")
monoardilla <-
Primates2 %>%
filter (species == "Saimiri oerstedii")
#Una vez creado estos data.frames, se visualiza cuantas variables corresponden para cada visualización de especie y se procede a crear un archivo .csv con el fin de que este sea el que contenga los datos de los valores utilizados en el grafico de pastel.
Datosmonos <- read.csv("Datos monos.csv",sep = ",", na.strings = "", dec = ",")
#Creación de grafico de pastel
data <- Datosmonos[,c("Nombres", "Ejemplares")]
fig <- plot_ly(data, labels = ~Nombres, values = ~Ejemplares, type = "pie")
fig <- fig %>%
config(locale = "es") %>%
layout(title = "Cantidad de registros para cada especie de primates en Costa Rica",
xaxis = list(showgrid = FALSE, zeroline = FALSE, showticklabels = FALSE),
yaxis = list(showgrid = FALSE, zeroline = FALSE, showticklabels = FALSE))
fig
Para la creación del mapa se realizaron procesos como: ajuste sobre la escala de las diferentes capas que se trabajan, generación y confección de un archivo raster para la altitud y generación del mapa utilizando leaflet de manera que para cada primate, así como capa base, se agraga una capa la cual se puede activar o desactivar.
#Ajustes hacia los data.frame creados
st_crs(monoarana) = 4326
st_crs(monoardilla) = 4326
st_crs(monoaullador) = 4326
st_crs(monocariblanca) = 4326
#Generación de capa raster
alt <- getData(
"worldclim",
var = "alt",
res = .5,
lon = -84,
lat = 10
)
#Se recorta segun lo que se vaya a utilizar
altitud <- crop(alt, extent(-86, -82.3, 8, 11.3))
# Capa de altitud recortada para los límites exactos de Costa Rica
altitud <-
alt %>%
crop(provincias) %>%
mask(provincias)
#visualización de la capa
plot(altitud, main = "Altitud recortada para los límites aproximados de Costa Rica")
#Generación de mapa
leaflet() %>%
addProviderTiles(providers$OpenStreetMap.Mapnik, group = "OpenStreetMap") %>%
addProviderTiles(providers$Stamen.TonerLite, group = "Stamen Toner Lite") %>%
addProviderTiles(providers$Esri.WorldImagery, group = "Imágenes de ESRI") %>%
addCircleMarkers(data = monoaullador,
stroke = F,
radius = 4,
fillColor = '#373737',
fillOpacity = 0.5,
popup = paste(
monoaullador$stateProvince,
monoaullador$locality,
monoaullador$eventDate,
monoaullador$decimalLatitude,
monoaullador$decimalLongitude,
sep = '<br/>'
),
group = "Mono aullador (Alouatta palliata)"
) %>%
addCircleMarkers(data = monoarana,
stroke = F,
radius = 4,
fillColor = '#c29b61',
fillOpacity = 0.7,
popup = paste(
monoarana$stateProvince,
monoarana$locality,
monoarana$eventDate,
monoarana$decimalLatitude,
monoarana$decimalLongitude,
sep = '<br/>'
),
group = "Mono Araña (Ateles geoffroyi)"
) %>%
addCircleMarkers(data = monoardilla,
stroke = F,
radius = 4,
fillColor = '#f44611',
fillOpacity = 0.5,
popup = paste(
monoarana$stateProvince,
monoarana$locality,
monoarana$eventDate,
monoarana$decimalLatitude,
monoarana$decimalLongitude,
sep = '<br/>'
),
group = "Mono ardilla (Saimiri oerstedii)"
) %>%
addCircleMarkers(data = monocariblanca,
stroke = F,
radius = 4,
fillColor = 'white',
fillOpacity = 0.5,
popup = paste(
monoarana$stateProvince,
monoarana$locality,
monoarana$eventDate,
monoarana$decimalLatitude,
monoarana$decimalLongitude,
sep = '<br/>'
),
group = "Mono cariblanca (Cebus capucinus)"
) %>%
addRasterImage(
altitud,
colors = c("forestgreen","yellow","tan","brown"),
opacity = 0.7) %>%
addLayersControl(
baseGroups = c("OpenStreetMap", "Stamen Toner Lite", "Imágenes de ESRI"),
overlayGroups = c("Mono aullador (Alouatta palliata)", "Mono Araña (Ateles geoffroyi)", "Mono ardilla (Saimiri oerstedii)", "Mono cariblanca (Cebus capucinus)")
) %>%
addMiniMap(
tiles = providers$Stamen.OpenStreetMap.Mapnik,
position = "bottomleft",
toggleDisplay = TRUE
)